package com.ccys.db.vo.app.historyScreen;

import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;

import java.math.BigDecimal;
import java.util.Date;

/**
 * @program: WhiteCoat
 * @description: 用户的问诊列表的问诊记录数据组装返回Vo
 * @author: ZhangJingCan
 * @create: 2024-01-28 16:26
 **/

@Data
public class MemberBookingMakeVo {

    /**
     * 总记录数
     */
    @JsonProperty("total_record")
    private Long totalRecord;

    /**
     * bookingId
     */
    @JsonProperty("id")
    private String id;

    /**
     * bookingCode
     */
    @JsonProperty("code")
    private String code;

    /**
     * 类型 - 根据是否存在孩子id来判断？对方返回的数据只有两个值：Child/Ward  或者 Self
     */
    @JsonProperty("type")
    private String type;

    /**
     * 状态 字符串的
     */
    @JsonProperty("status")
    private String status;

    /**
     * 状态值
     */
    @JsonProperty("status_value")
    private String statusValue;

    /**
     * 子状态
     */
    @JsonProperty("sub_status")
    private String subStatus = "";

    /**
     * 子状态值
     */
    @JsonProperty("sub_status_value")
    private Integer subStatusValue;

    /**
     * 创建时间 todo 需不需要根据timezone转换时间？
     */
    @JsonProperty("created_on")
    private Date createdOn;

    /**
     * 医生标识
     */
    @JsonProperty("doctor_id")
    private String doctorId;

    /**
     * 医生名字
     */
    @JsonProperty("doctor_first_name")
    private String doctorFirstName;

    /**
     * 医生姓氏
     */
    @JsonProperty("doctor_last_name")
    private String doctorLastName;

    /**
     * 医生执照号码
     */
    @JsonProperty("doctor_license_no")
    private String doctorLicenseNo;

    /**
     * 医生更新时间 todo 不知道是哪个表的更新时间
     */
    @JsonProperty("doctor_update_on")
    private Date doctorUpdateOn;

    /**
     * 医生头像照片
     */
    @JsonProperty("doctor_profile_photo")
    private String doctorProfilePhoto;

    /**
     * 总费用
     */
    @JsonProperty("total_cost")
    private BigDecimal totalCost;

    /**
     * 是否需要医疗信
     */
    @JsonProperty("need_medical_letter")
    private Boolean needMedicalLetter;

    /**
     * 转介绍code tbl_booking_referral_letter 问诊医生添加的转介绍信表里面的referral_letter_code字段
     */
    @JsonProperty("medical_letter_code")
    private String medicalLetterCode;

    /**
     * 是否需要医疗证明
     */
    @JsonProperty("need_medical_certification")
    private Boolean needMedicalCertification;

    /**
     * 医疗证明编码
     */
    @JsonProperty("medical_certification_code")
    private String medicalCertificationCode;

    /**
     * 医疗证明开始日期
     */
    @JsonProperty("medical_certification_begin_date")
    private Date medicalCertificationBeginDate;

    /**
     * 医疗证明结束日期
     */
    @JsonProperty("medical_certification_end_date")
    private Date medicalCertificationEndDate;

    /**
     * 历史类型 todo 返回的 全是：General Consultation
     */
    @JsonProperty("history_type")
    private String historyType;

    /**
     * 预约咨询类型  booking表的 appointment_type？
     */
    @JsonProperty("booking_consultation_type")
    private Integer bookingConsultationType;

    /**
     * 医生类型
     */
    @JsonProperty("doctor_type")
    private Integer doctorType;

    /**
     * 是否显示备忘录
     */
    @JsonProperty("show_memo")
    private Boolean showMemo;

    /**
     * 预约配送类型 todo 字段都没了，等以后加字段
     */
    @JsonProperty("booking_delivery_type")
    private Integer bookingDeliveryType;

    /**
     * 是否显示收据 没用了，直接返回true
     */
    @JsonProperty("show_receipt")
    private Boolean showReceipt = true;

    /**
     * 病人居住国家
     */
    @JsonProperty("patient_country_of_residence")
    private Integer patientCountryOfResidence;

    /**
     * 再购买过期日期 todo
     */
    @JsonProperty("rebuy_expired_date")
    private Date rebuyExpiredDate;

    /**
     * 再购买过期日期时间戳 todo
     */
    @JsonProperty("rebuy_expired_date_timestamp")
    private Long rebuyExpiredDateTimestamp;

    /**
     * 是否可以再购买 bookingFee现在和booking是booking为1，fee为多，这个字段要判断是否有未购买的数据，如果有则显示true
     */
    @JsonProperty("can_rebuy")
    private Boolean canRebuy;

    /**
     * 是否有药物 查询product - 有数据则true - 我们的药物表就是product表
     * 先用booking表连tbl_booking_prescription然后通过它连product
     */
    @JsonProperty("medication")
    private Boolean medication;

    /**
     * 是否有医疗服务 通过booking连接tbl_booking_medical_service表
     */
    @JsonProperty("medical_service")
    private Boolean medicalService;

    /**
     * 咨询开始日期
     */
    @JsonProperty("consultant_begin_date")
    private Date consultantBeginDate;

    /**
     * 咨询结束日期
     */
    @JsonProperty("consultant_end_date")
    private Date consultantEndDate;

    /**
     * 是否已咨询
     */
    @JsonProperty("is_consulted")
    private Boolean isConsulted;

    /**
     * 咨询结束超过24小时 todo还没写这个字段
     */
    @JsonProperty("consult_ended_more_than_24_hour")
    private Boolean consultEndedMoreThan24Hour;

}
